import request from "../../../utils/request";
import pubSubStr from '../../../utils/pubsub.js';
import PubSub from 'pubsub-js';

Page({
  data: {
    month: '',  // 第几月份
    date: '',  // 第几号
    recommendSongList: [],  // 每日推荐数据
    index: 0,   //点击的歌曲索引，便于切换上一首/下一首音乐
  },

  onLoad: function (options) {
    // 当前时间，放在图片上
    this.getCurrentTime();

    // 获取每日推荐数据
    this.getRecommendSongDate();

    // 订阅切换上一首/下一首音乐事件
    this.preOrNextSong = PubSub.subscribe(pubSubStr.preOrNextSong, (msg, data)=>{
      let {index, recommendSongList} = this.data;

      // 切换上一首
      if (data === 'preSong'){
        index = index <=0 ? recommendSongList.length - 1 : index-1;
      } else {  // 切换下一首
        index = index >= recommendSongList.length-1 ? 0 : index+1;
      }
      this.setData({
        index
      });

      let songId = recommendSongList[index].id;
      // 将切换后音乐id，通过发布方式传给详情页
      PubSub.publish(pubSubStr.songId, songId);
    });
  },

  // 跳转到歌曲详情页面
  goSongDetail(event){
    let {id,index} = event.currentTarget.dataset;
    // 点击的歌曲索引
    this.setData({
      index
    });
    wx.navigateTo({
      url: '/packageB/pages/songDetail/songDetail?id='+id
    });
  },

  // 获取每日推荐数据
  async getRecommendSongDate(){
    let cookies = wx.getStorageSync('cookies');
    if (cookies) {
      let res = await request('/recommend/songs');
      if (res.code === 200){
        this.setData({
          recommendSongList: res.recommend,
        })
      }
    } else {
      // 如果没有cookies,跳转到login页面
      wx.showToast({
        title: '请登录',
        icon: none,
        success: ()=>{
          wx.reLaunch({
            url: '/pages/login/login',
          })
        }
      })
    }

  },

  // 获取当前时间，定位到图片上
  getCurrentTime(){
    let nowDate = new Date();

    let M = nowDate.getMonth() + 1;
    let D = nowDate.getDate();

    this.setData({
      month: M,
      date: D
    })
  },


  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    // 取消订阅
    PubSub.unsubscribe(this.preOrNextSong)
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})